.\" Copyright (C) 2007 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" 2007-10-23 mtk, Nearly a complete rewrite of the earlier page.
.TH intro 3 2024-05-02 "Linux man-pages 6.9.1"
.SH NAME
intro \- introduction to library functions
.SH DESCRIPTION
Section 3 of the manual describes all library functions
excluding the library functions
(system call wrappers)
described in Section 2,
which implement system calls.
.P
Many of the functions described in the section are part of the
Standard C Library
.RI ( libc ).
Some functions are part of other libraries
(e.g.,
the math library,
.IR libm ,
or the real-time library,
.IR librt )
in which case the manual page will indicate
the linker option needed to link against the required library
(e.g.,
.I \-lm
and
.IR \-lrt ,
respectively,
for the aforementioned libraries).
.P
In some cases,
the programmer must define a feature test macro in order to obtain
the declaration of a function from the header file specified
in the man page SYNOPSIS section.
(Where required,
these
.I feature test macros
must be defined before including
.I any
header files.)
In such cases,
the required macro is described in the man page.
For further information on feature test macros,
see
.BR feature_test_macros (7).
.\"
.\" There
.\" are various function groups which can be identified by a letter which
.\" is appended to the chapter number:
.\" .IP (3C)
.\" These functions,
.\" the functions from chapter 2 and from chapter 3S are
.\" contained in the C standard library libc,
.\" which will be used by
.\" .BR cc (1)
.\" by default.
.\" .IP (3S)
.\" These functions are parts of the
.\" .BR stdio (3)
.\" library.  They are contained in the standard C library libc.
.\" .IP (3M)
.\" These functions are contained in the arithmetic library libm.  They are
.\" used by the
.\" .BR f77 (1)
.\" FORTRAN compiler by default,
.\" but not by the
.\" .BR cc (1)
.\" C compiler,
.\" which needs the option \fI\-lm\fP.
.\" .IP (3F)
.\" These functions are part of the FORTRAN library libF77.  There are no
.\" special compiler flags needed to use these functions.
.\" .IP (3X)
.\" Various special libraries.  The manual pages documenting their functions
.\" specify the library names.
.SS Subsections
Section 3 of this manual is organized into subsections
that reflect the complex structure of the standard C library
and its many implementations:
.IP \[bu] 3
3const
.IP \[bu]
3head
.IP \[bu]
3type
.P
This difficult history frequently makes it a poor example to follow
in design,
implementation,
and presentation.
.P
Ideally,
a library for the C language
is designed such that each header file
presents the interface to a coherent software module.
It provides a small number of function declarations
and exposes only data types and constants that
are required for use of those functions.
Together,
these are termed an API or
.IR "application program interface" .
Types and constants to be shared among multiple APIs
should be placed in header files that declare no functions.
This organization permits a C library module
to be documented concisely with one header file per manual page.
Such an approach
improves the readability and accessibility of library documentation,
and thereby the usability of the software.
.SH STANDARDS
Certain terms and abbreviations are used to indicate UNIX variants
and standards to which calls in this section conform.
See
.BR standards (7).
.SH NOTES
.SS Authors and copyright conditions
Look at the header of the manual page source
for the author(s) and copyright conditions.
Note that these can be different from page to page!
.SH SEE ALSO
.BR intro (2),
.BR errno (3),
.BR capabilities (7),
.BR credentials (7),
.BR environ (7),
.BR feature_test_macros (7),
.BR libc (7),
.BR math_error (7),
.BR path_resolution (7),
.BR pthreads (7),
.BR signal (7),
.BR standards (7),
.BR system_data_types (7)
